import { get, post } from './request'

/**
 * 获取视频列表
 * @param {Object} params - 查询参数
 * @returns {Promise} - 视频列表
 */
export function getVideoList(params) {
  return get('/video/list', params)
}

/**
 * 获取视频分类
 * @returns {Promise} - 分类列表
 */
export function getCategories() {
  return get('/video/categories')
}

/**
 * 获取视频详情
 * @param {String} id - 视频ID
 * @returns {Promise} - 视频详情
 */
export function getVideoDetail(id) {
  return get(`/video/${id}`)
}

/**
 * 点赞视频
 * @param {String} id - 视频ID
 * @returns {Promise} - 点赞结果
 */
export function likeVideo(id) {
  return post(`/video/${id}/like`)
}

/**
 * 取消点赞
 * @param {String} id - 视频ID
 * @returns {Promise} - 操作结果
 */
export function unlikeVideo(id) {
  return post(`/video/${id}/unlike`)
}

/**
 * 获取视频评论
 * @param {String} videoId - 视频ID
 * @param {Object} params - 查询参数
 * @returns {Promise} - 评论列表
 */
export function getComments(videoId, params) {
  return get(`/video/${videoId}/comments`, params)
}

/**
 * 发表评论
 * @param {String} videoId - 视频ID
 * @param {Object} data - 评论内容
 * @returns {Promise} - 发表结果
 */
export function postComment(videoId, data) {
  return post(`/video/${videoId}/comments`, data)
}

/**
 * 分享视频
 * @param {String} id - 视频ID
 * @param {Object} data - 分享数据
 * @returns {Promise} - 分享结果
 */
export function shareVideo(id, data) {
  return post(`/video/${id}/share`, data)
}

/**
 * 收藏视频
 * @param {String} id - 视频ID
 * @returns {Promise} - 收藏结果
 */
export function favoriteVideo(id) {
  return post(`/video/${id}/favorite`)
}

/**
 * 取消收藏
 * @param {String} id - 视频ID
 * @returns {Promise} - 操作结果
 */
export function unfavoriteVideo(id) {
  return post(`/video/${id}/unfavorite`)
}

/**
 * 搜索视频
 * @param {Object} params - 搜索参数
 * @returns {Promise} - 搜索结果
 */
export function searchVideos(params) {
  return get('/video/search', params, { showLoading: true })
}

/**
 * 解析外部视频链接
 * @param {Object} data - 链接数据
 * @returns {Promise} - 解析结果
 */
export function parseVideoUrl(data) {
  return post('/video/parse', data, { showLoading: true })
}

/**
 * 获取推荐视频
 * @returns {Promise} - 推荐视频列表
 */
export function getRecommendedVideos() {
  return get('/video/recommended')
}

/**
 * 获取商户推荐
 * @param {String} videoId - 视频ID
 * @returns {Promise} - 商户推荐
 */
export function getMerchantRecommendation(videoId) {
  return get(`/video/${videoId}/merchant`)
}

/**
 * 上报视频播放进度
 * @param {String} videoId - 视频ID
 * @param {Object} data - 进度数据
 * @returns {Promise} - 上报结果
 */
export function reportPlayProgress(videoId, data) {
  return post(`/video/${videoId}/progress`, data)
}